<html>
<head><meta charset="utf-8"><title>A simplification of Stephen Dolan&#x27;s MLsub thesis · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html">A simplification of Stephen Dolan&#x27;s MLsub thesis</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="204098234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204098234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204098234">(Jul 16 2020 at 15:18)</a>:</h4>
<p>I thought this might be of interest to the folks around here :) </p>
<ol>
<li>paper <a href="https://infoscience.epfl.ch/record/278576">https://infoscience.epfl.ch/record/278576</a></li>
<li>approachable blog post <a href="https://lptk.github.io/programming/2020/03/26/demystifying-mlsub.html">https://lptk.github.io/programming/2020/03/26/demystifying-mlsub.html</a></li>
<li>scala implementation <a href="https://github.com/LPTK/simple-sub">https://github.com/LPTK/simple-sub</a></li>
</ol>



<a name="204104474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204104474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204104474">(Jul 16 2020 at 16:00)</a>:</h4>
<p>and a different take on the same subject:</p>
<ol>
<li>beginnings of a series of posts about it, part 1 <a href="https://blog.polybdenum.com/2020/07/04/subtype-inference-by-example-part-1-introducing-cubiml.html">https://blog.polybdenum.com/2020/07/04/subtype-inference-by-example-part-1-introducing-cubiml.html</a> and part 2 <a href="https://blog.polybdenum.com/2020/07/11/subtype-inference-by-example-part-2-parsing-and-biunification.html">https://blog.polybdenum.com/2020/07/11/subtype-inference-by-example-part-2-parsing-and-biunification.html</a></li>
<li>demo rust implementation <a href="https://github.com/Storyyeller/cubiml-demo">https://github.com/Storyyeller/cubiml-demo</a></li>
</ol>



<a name="204257002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257002">(Jul 17 2020 at 20:46)</a>:</h4>
<p>ah, interesting indeed</p>



<a name="204257017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257017">(Jul 17 2020 at 20:46)</a>:</h4>
<p>I've banged my head against that thesis a few times</p>



<a name="204257127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257127">(Jul 17 2020 at 20:47)</a>:</h4>
<p>although the last few times I did I had kind of convinced myself it may not be that helpful for rust, but I don't know, worth re-investigating. Similarly there is some other haskell-based subtyping work that is heavily focused on inferring super/subtyping around binders, which is basically what rust is evolving into now that the borrow check is a separate part, so that might become quite relevant</p>



<a name="204257700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257700">(Jul 17 2020 at 20:52)</a>:</h4>
<p>it is very much "adding subtyping to type systems from the 70s/80s" and leaving GADTs/RankNTypes/TypeFamilies/etc to future work</p>



<a name="204257795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257795">(Jul 17 2020 at 20:53)</a>:</h4>
<p>yeah, it's just that rust's type system is fairly simple</p>



<a name="204257799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257799">(Jul 17 2020 at 20:53)</a>:</h4>
<p>subtyping records, or more generally row polymorphism, seemed possibly of interest to us</p>



<a name="204257998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204257998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204257998">(Jul 17 2020 at 20:55)</a>:</h4>
<p>I've seen inference papers for GADTs for example, but not these specific ones about subtyping around binders yet</p>



<a name="204258096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/A%20simplification%20of%20Stephen%20Dolan%27s%20MLsub%20thesis/near/204258096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/A.20simplification.20of.20Stephen.20Dolan&#x27;s.20MLsub.20thesis.html#204258096">(Jul 17 2020 at 20:56)</a>:</h4>
<blockquote>
<p>I've banged my head against that thesis a few times</p>
</blockquote>
<p>same, actually :) (with way more head-hitting-desk moments than you for sure)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>